3784207f891eb096e82164d2902e48d712ff3b31,clouddesigner/org.occiware.clouddesigner.occi.infrastructure.connector.vmware/src/org/occiware/clouddesigner/occi/infrastructure/connector/vmware/StorageConnector.java,StorageConnector,occiUpdate,#,391

Before Change


	public void occiUpdate() {
		titleMessage = "Update a virtual disk : " + getTitle();

		IRunnableWithProgress runnableWithProgress = new IRunnableWithProgress() {

			@Override
			public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
				LOGGER.debug("occiUpdate() called on " + this);
				if (!VCenterClient.checkConnection()) {
					// Must return true if connection is established.
					globalMessage = "No connection to Vcenter has been established.";
					levelMessage = Level.WARN;
					LOGGER.warn(globalMessage);
					return;
				}
				SubMonitor subMonitor = null;
				boolean toMonitor = false;
				if (monitor != null) {
					toMonitor = true;
				}

				if (toMonitor) {
					subMonitor = SubMonitor.convert(monitor, 100);
					// consume..
					subMonitor.worked(10);

				}
				volumeName = getTitle();

				try {
					loadDatastoreAndDatacenter();
				} catch (DatacenterNotFoundException | DatastoreNotFoundException ex) {
					if (datastore == null) {
						globalMessage = "Cant locate a datastore for this storage disk.";
						levelMessage = Level.ERROR;
						LOGGER.error(globalMessage);
						VCenterClient.disconnect();
						return;
					}
					if (datacenter == null) {
						globalMessage = "Cant locate a datacenter for this storage disk.";
						levelMessage = Level.ERROR;
						LOGGER.error(globalMessage);
						VCenterClient.disconnect();
						return;
					}
				} 
				
				if (monitor != null) {
					subMonitor.worked(40);
				}
				if (oldDiskName == null) {
					oldDiskName = volumeName;
				}
				if (oldDiskSize == null) {
					oldDiskSize = getSize();
				}

				// Resizing.
				if (oldDiskSize != size) {
					VolumeHelper.setSize(volumeName, size);
					try {
						VolumeHelper.resizeDisk(volumeName, size);
						globalMessage = "Resize disk operation success";
						levelMessage = Level.INFO;
						LOGGER.error(globalMessage);
					} catch (DiskNotFoundException | ResizeDiskException ex) {
						globalMessage = ex.getMessage();
						levelMessage = Level.ERROR;
						LOGGER.error(globalMessage);
					}
				}
				if (monitor != null) {
					subMonitor.worked(60);
				}
				// Renaming. (include vmdk file rename).
				if (!oldDiskName.equals(volumeName)) {
					// Try to rename the disk (and the vmdk file).
					try {
						VolumeHelper.renameDisk(oldDiskName, volumeName);
						oldDiskName = volumeName;
						globalMessage += " \n rename disk operation success";
						levelMessage = Level.INFO;
						LOGGER.error(globalMessage);
					} catch (DiskNotFoundException | RenameDiskException ex) {
						globalMessage = ex.getMessage();
						levelMessage = Level.ERROR;
						LOGGER.error(globalMessage);
					}
				}
				if (monitor != null) {
					subMonitor.worked(100);
				}
				// In all case invoke a disconnect from vcenter.
				VCenterClient.disconnect();
			}
		};

		UIDialog.executeActionThread(runnableWithProgress, titleMessage);

		if (globalMessage != null && !globalMessage.isEmpty()) {
			UIDialog.showUserMessage(titleMessage, globalMessage, levelMessage);

After Change


	@Override
	public void occiUpdate() {
		titleMessage = "Update a virtual disk : " + getTitle();
		LOGGER.debug("occiUpdate() called on " + this);
		
		if (UIDialog.isStandAlone()) {
			// Launching thread with business code.
			LOGGER.debug("Console mode.");
			Runnable runnable = new Runnable() {
				@Override
				public void run() {
					updateStorage(null);
				}
			};
			UIDialog.executeActionThread(runnable, titleMessage);

		} else {
			// Launching IRunnableWithProgress UI thread with business code.
			LOGGER.debug("UI mode.");
			IRunnableWithProgress runnableWithProgress = new IRunnableWithProgress() {

				@Override
				public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
					updateStorage(monitor);
				}
			};
			UIDialog.executeActionThread(runnableWithProgress, titleMessage);
			if (globalMessage != null && !globalMessage.isEmpty()) {
				UIDialog.showUserMessage(titleMessage, globalMessage, levelMessage);
			}